The present invention relates to communications and computer local area and wide area networks. More specifically, the invention relates to a modem such as a cable modem as well as a method and system for transmitting computer network data and voice data over a medium, such as a broadband medium, particularly a cable TV network.
Many residential communities have been wired with coaxial cable for delivery of TV signals from a cable TV station. Cable television networks provide cable television services to a large number of subscribers over a large geographical area. The cable television networks typically are interconnected by cables such as coaxial cables or a Hybrid Fiber/Coaxial (xe2x80x9cHFCxe2x80x9d) cable system which have data rates of about 10 Mega-bits-per-second (xe2x80x9cMbpsxe2x80x9d) to 30+ Mbps. The Internet, a world-wide-network of interconnected computers, provides multi-media content including audio, video, graphics and text that typically requires a large bandwidth for downloading and viewing. The cable TV station is able to transmit a large number of cable TV channels through the coaxial cable to the homes connected to the coaxial cable. The cable TV cable has a large amount of bandwidth, and very often the cable TV station does not use all of the bandwidth of the cable to transmit the cable TV signals. Cable TV networks therefore often have excess or unused capacity on their cable TV cables. Cable modems, such as those provided by 3Com Corporation of Santa Clara, Calif., and others offer customers higher-speed connectivity to the Internet and other wide area Networks (WANs), an intranet, Local Area Networks (LANs) and other computer networks via the cable television network.
Cable TV companies have taken advantage of the extra capacity of their cable networks and have modified their cable systems to connect individual residential users to the Internet through their cable system. A description of a cable TV system which can also provide Internet, WAN, intranet, LAN and other computer network interconnection via the cable television network is described in the publication Data-Over-Cable-Service-Interface-Specifications (DOCSIS) which is hereby incorporated by reference.
Apart from passing network data there exists an interest in using the Internet and other computer networks to conduct real time voice conversations between two or more separate parties. These voice conversations would be handled much like telephone calls handled by the existing telephone companies. However existing telephone systems and the Internet operate very differently. Traditional telephone systems (voice and video telephony) provide a dedicated connection between two persons during a voice call. When the voice call is initiated, the dedicated connection is created, and after the voice call has been terminated, the connection is also terminated. The Internet on the other hand, divides information into packets or cells. Various computer networks exist capable of transporting variable length (VL) information, such as Internet Protocol (IP) or IEEE 802.3 frames (packets); and fixed length information such as asynchronous transfer mode (ATM) cells. These packets or cells are individually sent out onto the network, mixed with other packets or cells and then individually switched from one path to another by switches in the network until the packet reaches its final destination. A voice call over the Internet, creates a large number of packets which must be delivered very quickly and very accurately. This places a high burden on the computer network.
It is a primary object of the present invention to provide a modem, system and method to carry data units between the modem and a termination system that facilitates real time service flows that generate fixed size data packets on a periodic basis, such as voice over IP, and also allows efficient data traffic including allocation to other users connected to the termination system.
According to the invention, A modem, communications system and method are provided with a transmitter connected to a modem termination system by a medium and with a receiver connected to the modem termination system by the medium. The modem has a memory forming a transmit queue as well as an input/output supplying generated data units, including (at times) voice communications data units. The modem has a data unit controller for sending data units to the input/output from the receive queue and for transmitting data units to the modem termination system such as a cable modem termination system (CMTS). The modem requests unsolicited grant service (UGS) from the CMTS when the modem frame controller detects voice communications data units or another periodic stream, providing fixed data grants of bandwidth time slots, on a real time basis (particularly used for voice communications data units). The controller uses the unsolicited data grants for transmission to the modem termination system. Upon detecting an accumulation of data units in the receive queue, the controller asserts a queue indicator, in a transmission to the modem termination system. The Modem receives in response an occasional extra grant per interval and uses these data grants until the queue indicator is not asserted. According to another feature of the modem, system and method, upon requesting unsolicited grant service (UGS) from the CMTS, the CMTS allocates at least an extra grant to form a talk spurt grant burst in the initial response to the UGS request.
The system and method of the invention are based on the CM and CMTS and a telephone including an audio input, a packet generator and a packet output connected to the input of the CM. Data units supplied by the telephone being are sent to a transmit queue before transmission to the CMTS. Unsolicited grant service (UGS) is established, requested by the CM to the CMTS during a transmission. This provides fixed unsolicited data grants of bandwidth time slots, on a real time basis. Transmissions form the CM to the CMTS use the unsolicited data grants for data units. The CM asserts a queue Indicator, in a transmission to the CMTS upon detecting data units accumulating in the transmission queue. The CMTS allocates an occasional extra grant until the queue indicator is not asserted.
A preferred embodiment of the invention uses the data packet carrying ability of cable TV networks as described in DOCSIS to accurately and quickly transmit a voice call from a cable user to another user over a cable TV cable. However, the invention may also be applied to a wireless system with a packetizing data/audio/video device which sends packets or cells of data to a termination system via radio waves, infrared or other media.
A preferred system is based on a subscriber using a cable modem (CM) connected to a cable modem termination system (CMTS) via a cable. Other media could be used to practice the invention. The system allows for various uses ofthe entire cable bandwidth. The subscriber can have customer premises equipment (CPE) of various types (a television set may be connected to the cable but this is not required for the invention). The CPE particularly includes a voice signal packet generating device (hereinafter xe2x80x9ctelephonexe2x80x9d) connected to the cable modem. This may be a microphone with digital signal processor (DSP) either connected to a personal computer (PC), or as a stand alone unit connected directly to the CM or connected to the CM via a LAN or via a PC. The telephone has a sound input, a CODEC (coder/decoder), to convert the analog signal to digital, and a packetizer to packetize data units based on the audio signal(or other real time signals that generate fixed size data packets on a periodic basis, e.g., a video signal). The terms xe2x80x9cpacketsxe2x80x9d and xe2x80x9ccellsxe2x80x9d are used interchangeably in this specification and represent any data unit that is sent between the cable modem and the CMTS. That is, frames sent between the CM and the CMTS may include protocol data units (PDUs) that are packets or cells. The preferred embodiment described herein is based on packets. Other CPE such as a PC or other workstation can also be connected to the cable modem, and can also be connected in series between the cable telephone and the cable modem or to the telephone and the cable modem via a local network, however this is not necessary. The LAN or other network which may be provided, connects the telephone, PC, TV or other customer premises equipment (CPE).
The CM receives digital voice packets from the telephone (voice packet generating device). The CM can also receive non-voice data packets from the LAN, personal computer or other workstation or CPE. The cable TV station has a CMTS which controls the signals being sent between the cable TV station and the individual subscribers.
The system and process of the invention may use many methods of allocating bandwidth, particularly upstream bandwidth, namely data flow to the CMTS. The system provides allocation services including unsolicited grant service (UGS), real-time poling service (rtPS), unsolicited grant service with activity detection (UGS-AD), non-real-time poling service (nrtPS) and best effort (BE) service. An important service flow allocation system used in the preferred embodiment is based on a pole/grant procedure in which the modem requests time slots, when a data packet is to be sent to the CMTS, in an upstream channel from the subscriber to the cable station.
For upstream bandwidth allocation the CMTS must generate a map indicating the use of the channels and the time slots. The media access protocol is based on a MAC-sublayer domain which is a collection of upstream and downstream channels. The system provides service flows and mainly a mechanism for upstream and downstream quality of service management or bandwidth allocation. Service flow ID is used to define a particular unidirectional mapping between a CM and a CMTS. The service flow ID""s (SIDs) provide a mechanism for allocation. The upstream transmission time-line is divided into intervals by the upstream bandwidth allocation mechanism. Each interval is an integral number of mini-slots (herein also slots or time slots). A xe2x80x9cmini-slotxe2x80x9d is the unit used for upstream transmission and there is no requirement that any protocol data unit (PDU) is actually transmitted in a single mini-slot. Frames are units of data exchange between few or more entities at the datalink layer wherein the MAC frame in the system of the invention uses a MAC header which may incorporate a variable length data PDU. The variable-length PDU includes a pair of 48-bit addresses, data and a CRC. Special cases, the MAC header may encapsulate multiple MAC frames into a single MAC frame.
A request frame is a basic mechanism that the CM uses to request bandwidth. A system does not provide for data PDUs following the request frame. The system also provides for a fragmentation whereby MAC PDUs are split into smaller pieces that are transmitted individually and then re-assembled at the CMTS.
When a CM has a data packet to send to the CMTS, the CM requests a time slot from the CMTS in an upstream channel from the subscriber to the cable station. When the CMTS learns of a request, it provides the CM with a time slot. However, when the CM has a voice call, the CM knows that it will have a continuous stream of voice data packets which need to be sent very quickly and very accurately to the CMTS. Therefore instead of the CM separately requesting a time slot for each voice data packet, the CM requests a periodic stream of time slots from the CMTS. The size and frequency of periodic time slots is chosen to fully transmit the voice data packets quickly and accurately.
The invention uses as UGS upstream flow scheduling allowing the mapping of constant bit rate (CBR) traffic onto service flows. Based on the upstream bandwidth being scheduled, the CBR service can be established by the CMTS scheduling a steady stream of grants. This is referred to as unsolicited because the bandwidth is predetermined and there are no ongoing requests being made. By providing scheduling services the efficiency of the pole/grant process can be improved. Upstream flow scheduling services are associated with service flows, each of which is associated with a single SID. When a Service Flow is provisioned for UGS, the Nominal Grant Interval is chosen to equal the packet interval of the CBR application. For example, VoIP applications with 10 ms packet sizes will require a Nominal Grant Interval of 10 ms. The size of the grant, the number of slots, is chosen to satisfy the bandwidth requirements of the CBR application and relates directly to the length of the packet.
When multiple Subflows are assigned to a UGS service, multiple grants per interval are issued. There is no explicit mapping of Subflows to grants. The multiple grants per interval form a pool of grants in which any subflow can use any grant. Various services can be provided tailored to a specific type of dataflow. Specifying a scheduling service and its associated parameters, the CMTS can anticipate a throughput and latency needs of the upstream traffic and provide poles and/or grants at the appropriate times. UGS is used particularly according to the system of the invention whereby real-time service flows that generate fixed size data packets on a periodic basis, such as voice over IP are facilitated. However even with a scheduled service such as UGS, the nature of voice or other similar data packets is such that problems can arise, particularly regarding synchronization. The invention the synchronization problem and allows non-synchronized (mostly external) constant bit rate generated packets to be transported without any incremental delay.
There are two synchronization problems that occur when carrying CBR traffic such as VoIP sessions across a network. The first is a frequency mismatch between the source clock and the destination clock. This is managed by the VoIP application. The second is the frequency mismatch between the CBR source/sinks, and the bearer channel that carries them.
Specifically, if the clock that generates the VoIP packets towards the upstream is not synchronized with the clock at the CMTS which is providing the UGS service, the VoIP packets may begin to accumulate in the CM. This could also occur if a MAP was lost, causing packets to accumulate.
When the CM detects this condition, it asserts the queue Indicator (QI) in the Service Flow EH Element of the frame. Specifically, the Unsolicited Grant Synchronization Header (UGSH) in the Service Flow EH Element is used to pass status information from the CM to the CMTS regarding the state of the UGS Service Flow. The most significant bit of the UGSH is the queue Indicator (QI) bit. The CM MUST set this flag once it detects that this Service Flow has exceeded its transmit queue depth. Once the CM detects that the Service Flow""s transmit queue is back within limits, it MUST clear the QI flag. The CMTS will respond by issuing an occasional extra grant. For security reasons the extra grants should be limited relative to the bandwidth. For example, the dribble grants could be limited so as to not exceed 1% of the provisioned bandwidth. (This corresponds to a maximum of one extra grant every one hundred grants). This dribble grant provides a solution to the synchronization problem and enables the use of non synchronized, mostly external, constant bit rate generated packets to be transported without any incremental delay. The CMTS will continue to supply this extra bandwidth until the CM deasserts this bit.
A similar problem occurs in the downstream. The far end transmitting source may not be frequency synchronized to the clock which drives the CMTS. Thus the CMTS should police at a rate slightly higher than the exact provisioned rate to allow for this mismatch and to prevent delay buildup or packet drops at the CMTS.
When there is no activity, the CMTS sends polled requests to the CM. When there is activity, the CMTS sends Unsolicited Grants to the CM. The CM indicates the number of grants per interval which it currently requires in the active grant field of the UGSH in each packet of each Unsolicited Grant. The CM may request up to the maximum active Grants per Interval. The CM constantly sends this state information so that no explicit acknowledgment is required from the CMTS.
It is left to the implementation of the CM to determine activity levels. Implementation options include:
Having the MAC layer service provide an activity timer per Classifier. The MAC layer service would mark a Subflow inactive if packets stopped arriving for a certain time, and mark a Subflow active the moment a new packet arrived. The number of Grants requested would equal the number of active Subflows.
Having a higher layer service entity such as an embedded media client which indicates activity to the MAC layer service.
When the CM is receiving polled requests and it detects activity, the CM requests enough bandwidth for one Grant per Interval. If activity is for more than one Subflow, the CM will indicate this in the active grant field of the UGSH beginning with the first packet it sends.
Instead of the one bit QI field indicating accumulating data, the invention may also use a number field, namely an 8 bit field or clear up indicator. This is used for requesting a burst of grants to clear up accumulating packets. A new extended header is used similar to the described UGHS. With this multiple bits request multiple grants. First, the UGS service is requested upon detecting voice traffic or similar periodic traffic and the CMTS or wireless node termination system initiates UGS providing grants starting with a first grant. The extended header is used to request multiple grants based on asserting a multiple bit flag, whereby the clear up burst is provided.
When the CM is receiving Unsolicited Grants, then detects new activity, and asks for one more grant, there will be a delay in time before it receives the new grant. During that delay, packets may build up at the CM. When the new Unsolicited Grant is added, the CMTS will burst extra Grants to clear out the packet buildup.
When the CM is receiving Unsolicited Grants, then detects inactivity on a Subflow and asks for one less grant, there will be a delay in time before the reduction in Grants occurs. If there has been any build up of packets in the upstream transmit queue, the extra grants will reduce or empty the queue. This is fine, and keeps system latency low. The relationship of which Subflow is getting which specific grant will also change. This effect appears as low frequency jitter that the far end must manage.
When the CM is receiving Unsolicited Grants and detects no activity on any of its Subflows, it will send one packet with the active grants field of the UGSH set to zero grants, and then cease transmission. The CMTS will switch from UGS mode to Real Time Polling mode. When activity is again detected, the CM sends a request in one of these polls to resume delivery of Unsolicited Grants. The CMTS ignores the size of the request and resumes allocating Grant Size grants to the CM.
It is not necessary for the CMTS to separately monitor packet activity since the CM does this already. In the worst case, if the CMTS misses the last packet which indicated zero grants, the CMTS and CM would be back in sync at the beginning of the next talk spurt. Because of this scenario, when the CM goes from inactive to active, the CM must be able to restart transmission with either Polled Requests or Unsolicited Grants.
The present invention preferably modifies the DOCSIS specification, or works within the framework of the DOCSIS specification in order to allocate time slots such that the size and frequency of periodic time slots is sufficient for the most part to handle real time service flows that generate fixed size data packets on a periodic basis. Further system features are provided for additional time slots to overcome synchronization problems as noted.
The system of the invention can optimize the use of the UGS for voice data units. Unsolicited Grant Service with Activity Detection (UGS-AD) is an Upstream Flow Scheduling Service Type. One application of UGS-AD is the support for Voice Activity Detection (VAD). VAD is also known as Silence Suppression and is a voice technique in which the transmitting CODEC sends voice samples only when there is significant voice energy present. The receiving CODEC will compensate for the silence intervals by inserting silence or comfort noise equal to the perceived background noise of the conversation. The advantage of VAD is the reduction of network bandwidth required for a conversation. It is estimated that 60% of a voice conversation is silence. With that silence removed, a network can handle substantially more traffic. Subflows in this context are described as active and inactive.
The system provides for the starting and stopping of the period stream of time slots. In this way, voice transmission from a subscriber to the CMTS can be provided quickly and accurately, while efficiently using the signal capacity of the cable and in existing systems. This is very important when there are many subscribers wishing to send data to the CMTS, especially when that data is voice data. By starting and stopping the periodic stream of time slots, more capacity is made available to other subscribers. More subscribers can then be serviced on a single cable, and/or faster service can be provided to the other subscribers. All of the data from all of the subscribers on a single line is placed into different time slots on the cable for transmission to the CMTS. Upon starting the UGS service, the system may use the extended header mentioned above to request a clear up burst of grants to clear out accumulating data. This results in the CMTS sending a clear up burst of grants. The 8 bit indicator is changed in subsequent transmissions by the CMTS until no further extra grants are needed.
The telephone, or CM, (in the preferred embodiment the CODEC of the telephone) or a combination of the two, is given the ability to detect when voice activity from the subscriber is above and below a predetermined value. When voice activity is below this predetermined value, the cable telephone and/or CM considers there to be no voice activity and that the subscriber is being silent. When the CM detects no voice activity or a silence period from the subscriber, the CM indicates to the CMTS that the periodic stream of time slots (UGS) is no longer needed and the CMTS stops providing the periodic stream of time slots. When voice activity of the subscriber resumes, the CM again request the periodic stream of time slots, and transmits the voice data packets or cells in these time slots.
The various features of novelty which characterize the invention are pointed out with particularity in the claims annexed to and forming a part of this disclosure. For a better understanding of the invention, its operating advantages and specific objects attained by its uses, reference is made to the accompanying drawings and descriptive matter in which a preferred embodiment of the invention is illustrated.